iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0

在你要執行(新建)一個容器的時候,你就需要有映像檔。映像檔是一個模版,讓 docker 知道要基於怎樣的設定和內容來建立一個新容器。

docker 在建立容器時,會需要在本地端有對應的映像檔。如果沒有的話,會向遠端的映像檔倉庫來下載 ( 預設值為官方維護的 docker hub )。

取得映像檔

使用 docker pull 指令。下方例子是從遠端拉取 nginx 映像檔。

docker pull nginx
#Using default tag: latest
#latest: Pulling from library/nginx
#a330b6cecb98: Pull complete
#5ef80e6f29b5: Pull complete
#f699b0db74e3: Pull complete
#0f701a34c55e: Pull complete
#3229dce7b89c: Pull complete
#ddb78cb2d047: Pull complete
#Digest: sha256:a05b0cdd4fc1be3b224ba9662ebdf98fe44c09c0c9215b45f84344c12867002e
#Status: Downloaded newer image for nginx:latest
#docker.io/library/nginx:latest

此命令相當於 sudo docker pull registry.hub.docker.com/nginx ,在沒有特別標註版號的狀況下,會遇上抓取 tag 為 latest 的,也就是最新版本。
抓取下來後,就可以使用 docker run 來建立容器了。

移除映像檔

在移除前,要先確定所有依賴於該映像檔的容器都已被移除,才能正常刪除映像檔囉。
指令為:sudo docker rmi <container id / name>

列出本機端所有映像檔

可以使用 docker images 指令

REPOSITORY                        TAG           IMAGE ID       CREATED         SIZE
nginx                             latest        822b7ec2aaf2   43 hours ago    133MB

REPOSITORY:代表映像檔的倉庫來源
TAG: 主要是用來標記同一個倉庫下,不同版本的映像檔
IMAGE ID:映像檔 ID,此值會是唯一值
CREATED:此映像檔的建立時間
SIZE:映像檔大小

建立一個映像檔

先從 Docker hub 下載一個映像檔後,建立一個容器,並進行一些操作。

docker run -t -i training/sinatra /bin/bash
root@13fb70bb49f0: gem install json -v 1.5
# 在容器內安裝 json 1.5 的套件版本後,使用 exit 離開容器

接著,按照以下指令來建立新映像檔:
<格式>:
docker commit -m <此映像檔的修改相關訊息> -a <指定更新的使用者訊息> <用來當做模版的容器 ID> <新的映像檔名稱>

sudo docker commit -m "Added json-1.5 gem" -a "Docker Beginner" 13fb70bb49f0 andy/sinatra:v2
# 成功的話,會出現 sha256 的字串
#sha256:8ddf1108bed9fb487a867f798928161552ad373c4a5a0e0fa7a7839e4db01dfc

再輸入 docker images,你就會看見新建立的映像檔了。

docker images
#REPOSITORY                        TAG           IMAGE ID       CREATED         SIZE
#andy/sinatra                      v2            8ddf1108bed9   9 seconds ago   473MB

上一篇
Day 2 Docker 基本概念
下一篇
Day 4 倉庫 Repository
系列文
以 Docker 為始的多種開源服務初探30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言